

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>桶操作 &mdash; Ceph Documentation</title>
  

  
  <link rel="stylesheet" href="../../../_static/ceph.css" type="text/css" />
  <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../../../_static/ceph.css" type="text/css" />
  <link rel="stylesheet" href="../../../_static/graphviz.css" type="text/css" />
  <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" />

  
  

  
  

  

  
  <!--[if lt IE 9]>
    <script src="../../../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
        <script src="../../../_static/jquery.js"></script>
        <script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
        <script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
        <script src="../../../_static/doctools.js"></script>
        <script src="../../../_static/sphinx_highlight.js"></script>
    
    <script type="text/javascript" src="../../../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../../../genindex/" />
    <link rel="search" title="Search" href="../../../search/" />
    <link rel="next" title="对象操作" href="../objectops/" />
    <link rel="prev" title="服务支持的操作" href="../serviceops/" /> 
</head>

<body class="wy-body-for-nav">

   
  <header class="top-bar">
    <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../../../" class="icon icon-home" aria-label="Home"></a></li>
          <li class="breadcrumb-item"><a href="../../">Ceph 对象网关</a></li>
          <li class="breadcrumb-item"><a href="../">Ceph 对象网关的 S3 API</a></li>
      <li class="breadcrumb-item active">桶操作</li>
      <li class="wy-breadcrumbs-aside">
            <a href="../../../_sources/radosgw/s3/bucketops.rst.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
  </header>
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search"  style="background: #eee" >
          

          
            <a href="../../../" class="icon icon-home"> Ceph
          

          
          </a>

          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../../search/" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../start/">Ceph 简介</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../install/">安装 Ceph</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../cephadm/">Cephadm</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../rados/">Ceph 存储集群</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../cephfs/">Ceph 文件系统</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../rbd/">Ceph 块设备</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../">Ceph 对象网关</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../frontends/">HTTP 前端</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../multisite/">多站配置</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../zone-features/">域的功能</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../placement/">存储池归置与存储类</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../multisite-sync-policy/">多站同步策略配置</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pools/">存储池的配置</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../config-ref/">配置参考</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../admin/">管理指南</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../account/">用户账户</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../">S3 API</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="../#api">API</a><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="../commons/">常见的</a></li>
<li class="toctree-l4"><a class="reference internal" href="../authentication/">认证</a></li>
<li class="toctree-l4"><a class="reference internal" href="../serviceops/">Service Ops</a></li>
<li class="toctree-l4 current"><a class="current reference internal" href="#">Bucket Ops</a></li>
<li class="toctree-l4"><a class="reference internal" href="../objectops/">Object Ops</a></li>
<li class="toctree-l4"><a class="reference internal" href="../cpp/">C++</a></li>
<li class="toctree-l4"><a class="reference internal" href="../csharp/">C#</a></li>
<li class="toctree-l4"><a class="reference internal" href="../java/">Java</a></li>
<li class="toctree-l4"><a class="reference internal" href="../perl/">Perl</a></li>
<li class="toctree-l4"><a class="reference internal" href="../php/">PHP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../python/">Python</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ruby/">Ruby AWS::SDK Examples (aws-sdk gem ~&gt;2)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ruby/#ruby-aws-s3-examples-aws-s3-gem">Ruby AWS::S3 Examples (aws-s3 gem)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../#id1">功能支持情况</a></li>
<li class="toctree-l3"><a class="reference internal" href="../#header">不支持的 Header 字段</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../iam/">IAM API</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../rgw-cache/">数据缓存和 CDN</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../swift/">Swift API</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../adminops/">管理操作 API</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../api/">Python 接口</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nfs/">通过 NFS 导出</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../keystone/">与 OpenStack Keystone 对接</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../barbican/">与 OpenStack Barbican 对接</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../vault/">与 HashiCorp Vault 对接</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../kmip/">与 KMIP 对接</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../opa/">与 Open Policy Agent 对接</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../multitenancy/">多租户</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../compression/">压缩</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../ldap-auth/">LDAP 认证</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../encryption/">服务器端加密</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../bucketpolicy/">桶策略</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../dynamicresharding/">动态的桶索引重分片</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../mfa/">多因子认证</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sync-modules/">同步模块</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../notifications/">Bucket Notifications</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../layout/">RADOS 中的数据布局</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../STS/">STS</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../STSLite/">STS Lite</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../keycloak/">Keycloak</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../session-tags/">Session Tags</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../role/">Role</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../orphans/">Orphan List and Associated Tooliing</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../oidc/">OpenID Connect Provider</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../troubleshooting/">故障排除</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../man/8/radosgw/">radosgw 手册页</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../man/8/radosgw-admin/">radosgw-admin 手册页</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../qat-accel/">使用 QAT 为加密和压缩提速</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../s3select/">S3-select</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../lua-scripting/">Lua Scripting</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../d3n_datacache/">D3N Data Cache</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../cloud-transition/">Cloud Transition</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../metrics/">Metrics</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../uadk-accel/">UADK Acceleration for Compression</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../bucket_logging/">桶的日志记录</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../mgr/">Ceph 管理器守护进程</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../mgr/dashboard/">Ceph 仪表盘</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../monitoring/">监控概览</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api/">API 文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../architecture/">体系结构</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../dev/developer_guide/">开发者指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../dev/internals/">Ceph 内幕</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../governance/">项目管理</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../foundation/">Ceph 基金会</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../ceph-volume/">ceph-volume</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../releases/general/">Ceph 版本（总目录）</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../releases/">Ceph 版本（索引）</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../security/">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../hardware-monitoring/">硬件监控</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../glossary/">Ceph 术语</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../jaegertracing/">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../translation_cn/">中文版翻译资源</a></li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../../">Ceph</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
<div id="dev-warning" class="admonition note">
  <p class="first admonition-title">Notice</p>
  <p class="last">This document is for a development version of Ceph.</p>
</div>
  <div id="docubetter" align="right" style="padding: 5px; font-weight: bold;">
    <a href="https://pad.ceph.com/p/Report_Documentation_Bugs">Report a Documentation Bug</a>
  </div>

  
  <section id="id1">
<h1>桶操作<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h1>
<section id="put-bucket">
<h2>PUT Bucket<a class="headerlink" href="#put-bucket" title="Permalink to this heading"></a></h2>
<p>Creates a new bucket. To create a bucket, you must have a user ID and a valid AWS Access Key ID to authenticate requests. You may not
create buckets as an anonymous user.</p>
<section id="constraints">
<h3>Constraints<a class="headerlink" href="#constraints" title="Permalink to this heading"></a></h3>
<p>In general, bucket names should follow domain name constraints.</p>
<ul class="simple">
<li><p>Bucket names must be unique.</p></li>
<li><p>Bucket names cannot be formatted as IP address.</p></li>
<li><p>Bucket names can be between 3 and 63 characters long.</p></li>
<li><p>Bucket names must not contain uppercase characters or underscores.</p></li>
<li><p>Bucket names must start with a lowercase letter or number.</p></li>
<li><p>Bucket names must be a series of one or more labels. Adjacent labels are separated by a single period (.). Bucket names can contain lowercase letters, numbers, and hyphens. Each label must start and end with a lowercase letter or a number.</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The above constraints are relaxed if the option ‘rgw_relaxed_s3_bucket_names’ is set to true except that the bucket names must still be unique, cannot be formatted as IP address and can contain letters, numbers, periods, dashes and underscores for up to 255 characters long.</p>
</div>
</section>
<section id="id2">
<h3>语法<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">PUT</span> <span class="o">/</span><span class="p">{</span><span class="n">bucket</span><span class="p">}</span> <span class="n">HTTP</span><span class="o">/</span><span class="mf">1.1</span>
<span class="n">Host</span><span class="p">:</span> <span class="n">cname</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">com</span>
<span class="n">x</span><span class="o">-</span><span class="n">amz</span><span class="o">-</span><span class="n">acl</span><span class="p">:</span> <span class="n">public</span><span class="o">-</span><span class="n">read</span><span class="o">-</span><span class="n">write</span>

<span class="n">Authorization</span><span class="p">:</span> <span class="n">AWS</span> <span class="p">{</span><span class="n">access</span><span class="o">-</span><span class="n">key</span><span class="p">}:{</span><span class="nb">hash</span><span class="o">-</span><span class="n">of</span><span class="o">-</span><span class="n">header</span><span class="o">-</span><span class="ow">and</span><span class="o">-</span><span class="n">secret</span><span class="p">}</span>
</pre></div>
</div>
</section>
<section id="id3">
<h3>参数<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Description</p></th>
<th class="head" colspan="2"><p>Valid Values</p></th>
<th class="head"><p>Required</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">x-amz-acl</span></code></p></td>
<td><p>Canned ACLs.</p></td>
<td colspan="2"><p><code class="docutils literal notranslate"><span class="pre">private</span></code>, <code class="docutils literal notranslate"><span class="pre">public-read</span></code>, <code class="docutils literal notranslate"><span class="pre">public-read-write</span></code>, <code class="docutils literal notranslate"><span class="pre">authenticated-read</span></code></p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td colspan="2"><p><code class="docutils literal notranslate"><span class="pre">x-amz-bucket-object-lock-enabled</span></code></p></td>
<td colspan="2"><p>Enable object lock on bucket. | <code class="docutils literal notranslate"><span class="pre">true</span></code>, <code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
<td><p>No</p></td>
</tr>
</tbody>
</table>
</section>
<section id="request-entities">
<h3>Request Entities<a class="headerlink" href="#request-entities" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">CreateBucketConfiguration</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the bucket configuration.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">LocationConstraint</span></code></p></td>
<td><p>String</p></td>
<td><p>A zonegroup api name, with optional <a class="reference internal" href="../../placement/#s3-bucket-placement"><span class="std std-ref">S3 Bucket Placement</span></a></p></td>
</tr>
</tbody>
</table>
</section>
<section id="http">
<h3>HTTP 响应<a class="headerlink" href="#http" title="Permalink to this heading"></a></h3>
<p>If the bucket name is unique, within constraints and unused, the operation will succeed.
If a bucket with the same name already exists and the user is the bucket owner, the operation will succeed.
If the bucket name is already in use, the operation will fail.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">409</span></code></p></td>
<td><p>BucketAlreadyExists</p></td>
<td><p>Bucket already exists under different user’s ownership.</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="delete-bucket">
<h2>DELETE Bucket<a class="headerlink" href="#delete-bucket" title="Permalink to this heading"></a></h2>
<p>Deletes a bucket. You can reuse bucket names following a successful bucket removal.</p>
<section id="id4">
<h3>语法<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">DELETE</span> <span class="o">/</span><span class="p">{</span><span class="n">bucket</span><span class="p">}</span> <span class="n">HTTP</span><span class="o">/</span><span class="mf">1.1</span>
<span class="n">Host</span><span class="p">:</span> <span class="n">cname</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">com</span>

<span class="n">Authorization</span><span class="p">:</span> <span class="n">AWS</span> <span class="p">{</span><span class="n">access</span><span class="o">-</span><span class="n">key</span><span class="p">}:{</span><span class="nb">hash</span><span class="o">-</span><span class="n">of</span><span class="o">-</span><span class="n">header</span><span class="o">-</span><span class="ow">and</span><span class="o">-</span><span class="n">secret</span><span class="p">}</span>
</pre></div>
</div>
</section>
<section id="id5">
<h3>HTTP 响应<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">204</span></code></p></td>
<td><p>No Content</p></td>
<td><p>Bucket removed.</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="get-bucket">
<h2>GET Bucket<a class="headerlink" href="#get-bucket" title="Permalink to this heading"></a></h2>
<p>返回一系列桶对象。</p>
<section id="id6">
<h3>语法<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>GET /{bucket}?max-keys=25 HTTP/1.1
Host: cname.domain.com
</pre></div>
</div>
</section>
<section id="id7">
<h3>参数<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">prefix</span></code></p></td>
<td><p>String</p></td>
<td><p>Only returns objects that contain the specified prefix.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">delimiter</span></code></p></td>
<td><p>String</p></td>
<td><p>The delimiter between the prefix and the rest of the object name.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">marker</span></code></p></td>
<td><p>String</p></td>
<td><p>A beginning index for the list of objects returned.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">max-keys</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The maximum number of keys to return. Default is 1000.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">allow-unordered</span></code></p></td>
<td><p>Boolean</p></td>
<td><p>Non-standard extension. Allows results to be returned unordered. Cannot be used with delimiter.</p></td>
</tr>
</tbody>
</table>
</section>
<section id="id8">
<h3>HTTP 响应<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">200</span></code></p></td>
<td><p>OK</p></td>
<td><p>Buckets retrieved</p></td>
</tr>
</tbody>
</table>
</section>
<section id="bucket-response-entities">
<h3>Bucket Response Entities<a class="headerlink" href="#bucket-response-entities" title="Permalink to this heading"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/{bucket}</span></code> returns a container for buckets with the following fields.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ListBucketResult</span></code></p></td>
<td><p>Entity</p></td>
<td><p>The container for the list of objects.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Name</span></code></p></td>
<td><p>String</p></td>
<td><p>The name of the bucket whose contents will be returned.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Prefix</span></code></p></td>
<td><p>String</p></td>
<td><p>A prefix for the object keys.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Marker</span></code></p></td>
<td><p>String</p></td>
<td><p>A beginning index for the list of objects returned.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">MaxKeys</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The maximum number of keys returned.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Delimiter</span></code></p></td>
<td><p>String</p></td>
<td><p>If set, objects with the same prefix will appear in the <code class="docutils literal notranslate"><span class="pre">CommonPrefixes</span></code> list.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">IsTruncated</span></code></p></td>
<td><p>Boolean</p></td>
<td><p>If <code class="docutils literal notranslate"><span class="pre">true</span></code>, only a subset of the bucket’s contents were returned.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">CommonPrefixes</span></code></p></td>
<td><p>Container</p></td>
<td><p>If multiple objects contain the same prefix, they will appear in this list.</p></td>
</tr>
</tbody>
</table>
</section>
<section id="object-response-entities">
<h3>Object Response Entities<a class="headerlink" href="#object-response-entities" title="Permalink to this heading"></a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">ListBucketResult</span></code> contains objects, where each object is within a <code class="docutils literal notranslate"><span class="pre">Contents</span></code> container.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Contents</span></code></p></td>
<td><p>Object</p></td>
<td><p>A container for the object.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Key</span></code></p></td>
<td><p>String</p></td>
<td><p>The object’s key.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">LastModified</span></code></p></td>
<td><p>Date</p></td>
<td><p>The object’s last-modified date/time.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ETag</span></code></p></td>
<td><p>String</p></td>
<td><p>An MD-5 hash of the object. (entity tag)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Size</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The object’s size.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">StorageClass</span></code></p></td>
<td><p>String</p></td>
<td><p>Should always return <code class="docutils literal notranslate"><span class="pre">STANDARD</span></code>.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Type</span></code></p></td>
<td><p>String</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">Appendable</span></code> or <code class="docutils literal notranslate"><span class="pre">Normal</span></code>.</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="get-bucket-location">
<h2>Get Bucket Location<a class="headerlink" href="#get-bucket-location" title="Permalink to this heading"></a></h2>
<p>Retrieves the bucket’s region. The user needs to be the bucket owner
to call this. A bucket can be constrained to a region by providing
<code class="docutils literal notranslate"><span class="pre">LocationConstraint</span></code> during a PUT request.</p>
<section id="id9">
<h3>语法<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<p>Add the <code class="docutils literal notranslate"><span class="pre">location</span></code> subresource to bucket resource as shown below</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>GET /{bucket}?location HTTP/1.1
Host: cname.domain.com

Authorization: AWS {access-key}:{hash-of-header-and-secret}
</pre></div>
</div>
</section>
<section id="response-entities">
<h3>Response Entities<a class="headerlink" href="#response-entities" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">LocationConstraint</span></code></p></td>
<td><p>String</p></td>
<td><p>The region where bucket resides, empty
string for defult region</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="get-bucket-acl">
<h2>Get Bucket ACL<a class="headerlink" href="#get-bucket-acl" title="Permalink to this heading"></a></h2>
<p>Retrieves the bucket access control list. The user needs to be the bucket
owner or to have been granted <code class="docutils literal notranslate"><span class="pre">READ_ACP</span></code> permission on the bucket.</p>
<section id="id10">
<h3>语法<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h3>
<p>Add the <code class="docutils literal notranslate"><span class="pre">acl</span></code> subresource to the bucket request as shown below.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>GET /{bucket}?acl HTTP/1.1
Host: cname.domain.com

Authorization: AWS {access-key}:{hash-of-header-and-secret}
</pre></div>
</div>
</section>
<section id="id11">
<h3>Response Entities<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AccessControlPolicy</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the response.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AccessControlList</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the ACL information.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Owner</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the bucket owner’s <code class="docutils literal notranslate"><span class="pre">ID</span></code> and <code class="docutils literal notranslate"><span class="pre">DisplayName</span></code>.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ID</span></code></p></td>
<td><p>String</p></td>
<td><p>The bucket owner’s ID.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DisplayName</span></code></p></td>
<td><p>String</p></td>
<td><p>The bucket owner’s display name.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Grant</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for <code class="docutils literal notranslate"><span class="pre">Grantee</span></code> and <code class="docutils literal notranslate"><span class="pre">Permission</span></code>.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Grantee</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the <code class="docutils literal notranslate"><span class="pre">DisplayName</span></code> and <code class="docutils literal notranslate"><span class="pre">ID</span></code> of the user receiving a grant of permission.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Permission</span></code></p></td>
<td><p>String</p></td>
<td><p>The permission given to the <code class="docutils literal notranslate"><span class="pre">Grantee</span></code> bucket.</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="put-bucket-acl">
<h2>PUT Bucket ACL<a class="headerlink" href="#put-bucket-acl" title="Permalink to this heading"></a></h2>
<p>Sets an access control to an existing bucket. The user needs to be the bucket
owner or to have been granted <code class="docutils literal notranslate"><span class="pre">WRITE_ACP</span></code> permission on the bucket.</p>
<section id="id12">
<h3>语法<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h3>
<p>Add the <code class="docutils literal notranslate"><span class="pre">acl</span></code> subresource to the bucket request as shown below.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>PUT /{bucket}?acl HTTP/1.1
</pre></div>
</div>
</section>
<section id="id13">
<h3>Request Entities<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AccessControlPolicy</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the request.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AccessControlList</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the ACL information.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Owner</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the bucket owner’s <code class="docutils literal notranslate"><span class="pre">ID</span></code> and <code class="docutils literal notranslate"><span class="pre">DisplayName</span></code>.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ID</span></code></p></td>
<td><p>String</p></td>
<td><p>The bucket owner’s ID.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DisplayName</span></code></p></td>
<td><p>String</p></td>
<td><p>The bucket owner’s display name.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Grant</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for <code class="docutils literal notranslate"><span class="pre">Grantee</span></code> and <code class="docutils literal notranslate"><span class="pre">Permission</span></code>.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Grantee</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the <code class="docutils literal notranslate"><span class="pre">DisplayName</span></code> and <code class="docutils literal notranslate"><span class="pre">ID</span></code> of the user receiving a grant of permission.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Permission</span></code></p></td>
<td><p>String</p></td>
<td><p>The permission given to the <code class="docutils literal notranslate"><span class="pre">Grantee</span></code> bucket.</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="list-bucket-multipart-uploads">
<h2>List Bucket Multipart Uploads<a class="headerlink" href="#list-bucket-multipart-uploads" title="Permalink to this heading"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/?uploads</span></code> returns a list of the current in-progress multipart uploads--i.e., the application initiates a multipart upload, but
the service hasn’t completed all the uploads yet.</p>
<section id="id14">
<h3>语法<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>GET /{bucket}?uploads HTTP/1.1
</pre></div>
</div>
</section>
<section id="parameters">
<h3>Parameters<a class="headerlink" href="#parameters" title="Permalink to this heading"></a></h3>
<p>You may specify parameters for <code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/{bucket}?uploads</span></code>, but none of them are required.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">prefix</span></code></p></td>
<td><p>String</p></td>
<td><p>Returns in-progress uploads whose keys contains the specified prefix.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">delimiter</span></code></p></td>
<td><p>String</p></td>
<td><p>The delimiter between the prefix and the rest of the object name.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">key-marker</span></code></p></td>
<td><p>String</p></td>
<td><p>The beginning marker for the list of uploads.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">max-keys</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The maximum number of in-progress uploads. The default is 1000.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">max-uploads</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The maximum number of multipart uploads. The range from 1-1000. The default is 1000.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">upload-id-marker</span></code></p></td>
<td><p>String</p></td>
<td><p>Ignored if <code class="docutils literal notranslate"><span class="pre">key-marker</span></code> isn’t specified. Specifies the <code class="docutils literal notranslate"><span class="pre">ID</span></code> of first
upload to list in lexicographical order at or following the <code class="docutils literal notranslate"><span class="pre">ID</span></code>.</p></td>
</tr>
</tbody>
</table>
</section>
<section id="id15">
<h3>Response Entities<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ListMultipartUploadsResult</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the results.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ListMultipartUploadsResult.Prefix</span></code></p></td>
<td><p>String</p></td>
<td><p>The prefix specified by the <code class="docutils literal notranslate"><span class="pre">prefix</span></code> request parameter (if any).</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Bucket</span></code></p></td>
<td><p>String</p></td>
<td><p>The bucket that will receive the bucket contents.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">KeyMarker</span></code></p></td>
<td><p>String</p></td>
<td><p>The key marker specified by the <code class="docutils literal notranslate"><span class="pre">key-marker</span></code> request parameter (if any).</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UploadIdMarker</span></code></p></td>
<td><p>String</p></td>
<td><p>The marker specified by the <code class="docutils literal notranslate"><span class="pre">upload-id-marker</span></code> request parameter (if any).</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">NextKeyMarker</span></code></p></td>
<td><p>String</p></td>
<td><p>The key marker to use in a subsequent request if <code class="docutils literal notranslate"><span class="pre">IsTruncated</span></code> is <code class="docutils literal notranslate"><span class="pre">true</span></code>.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">NextUploadIdMarker</span></code></p></td>
<td><p>String</p></td>
<td><p>The upload ID marker to use in a subsequent request if <code class="docutils literal notranslate"><span class="pre">IsTruncated</span></code> is <code class="docutils literal notranslate"><span class="pre">true</span></code>.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">MaxUploads</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The max uploads specified by the <code class="docutils literal notranslate"><span class="pre">max-uploads</span></code> request parameter.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Delimiter</span></code></p></td>
<td><p>String</p></td>
<td><p>If set, objects with the same prefix will appear in the <code class="docutils literal notranslate"><span class="pre">CommonPrefixes</span></code> list.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">IsTruncated</span></code></p></td>
<td><p>Boolean</p></td>
<td><p>If <code class="docutils literal notranslate"><span class="pre">true</span></code>, only a subset of the bucket’s upload contents were returned.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Upload</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for <code class="docutils literal notranslate"><span class="pre">Key</span></code>, <code class="docutils literal notranslate"><span class="pre">UploadId</span></code>, <code class="docutils literal notranslate"><span class="pre">InitiatorOwner</span></code>, <code class="docutils literal notranslate"><span class="pre">StorageClass</span></code>, and <code class="docutils literal notranslate"><span class="pre">Initiated</span></code> elements.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Key</span></code></p></td>
<td><p>String</p></td>
<td><p>The key of the object once the multipart upload is complete.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UploadId</span></code></p></td>
<td><p>String</p></td>
<td><p>The <code class="docutils literal notranslate"><span class="pre">ID</span></code> that identifies the multipart upload.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Initiator</span></code></p></td>
<td><p>Container</p></td>
<td><p>Contains the <code class="docutils literal notranslate"><span class="pre">ID</span></code> and <code class="docutils literal notranslate"><span class="pre">DisplayName</span></code> of the user who initiated the upload.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DisplayName</span></code></p></td>
<td><p>String</p></td>
<td><p>The initiator’s display name.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ID</span></code></p></td>
<td><p>String</p></td>
<td><p>The initiator’s ID.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Owner</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the <code class="docutils literal notranslate"><span class="pre">ID</span></code> and <code class="docutils literal notranslate"><span class="pre">DisplayName</span></code> of the user who owns the uploaded object.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">StorageClass</span></code></p></td>
<td><p>String</p></td>
<td><p>The method used to store the resulting object. <code class="docutils literal notranslate"><span class="pre">STANDARD</span></code> or <code class="docutils literal notranslate"><span class="pre">REDUCED_REDUNDANCY</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Initiated</span></code></p></td>
<td><p>Date</p></td>
<td><p>The date and time the user initiated the upload.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">CommonPrefixes</span></code></p></td>
<td><p>Container</p></td>
<td><p>If multiple objects contain the same prefix, they will appear in this list.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">CommonPrefixes.Prefix</span></code></p></td>
<td><p>String</p></td>
<td><p>The substring of the key after the prefix as defined by the <code class="docutils literal notranslate"><span class="pre">prefix</span></code> request parameter.</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="enable-suspend-bucket-versioning">
<h2>ENABLE/SUSPEND BUCKET VERSIONING<a class="headerlink" href="#enable-suspend-bucket-versioning" title="Permalink to this heading"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">PUT</span> <span class="pre">/?versioning</span></code> 这个子资源用于设置已有桶的版本化状态。
只有桶所有者才能设置版本化状态。</p>
<p>版本化状态可以设置为如下取值之一：</p>
<ul class="simple">
<li><p>Enabled : 为桶内的对象启用版本化支持，放入桶内的对象都会收到一个唯一的版本 ID 。</p></li>
<li><p>Suspended : 为桶内的对象禁用版本化支持，放入桶内的对象其版本 ID 都是 null 。</p></li>
</ul>
<p>如果从没给某一个桶设置过版本化状态，那它就没有版本化状态； GET versioning 请求就不会返回版本化状态值。</p>
<section id="id16">
<h3>语法<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>PUT  /{bucket}?versioning  HTTP/1.1
</pre></div>
</div>
</section>
<section id="id17">
<h3>请求实体<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>名称</p></th>
<th class="head"><p>类型</p></th>
<th class="head"><p>描述</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">VersioningConfiguration</span></code></p></td>
<td><p>Container</p></td>
<td><p>用于包装此请求的容器。</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Status</span></code></p></td>
<td><p>String</p></td>
<td><p>设置桶的版本化状态，可用值： Suspended/Enabled</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="put-bucket-object-lock">
<h2>PUT BUCKET OBJECT LOCK<a class="headerlink" href="#put-bucket-object-lock" title="Permalink to this heading"></a></h2>
<p>Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be
applied by default to every new object placed in the specified bucket.</p>
<section id="id18">
<h3>语法<a class="headerlink" href="#id18" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>PUT /{bucket}?object-lock HTTP/1.1
</pre></div>
</div>
</section>
<section id="id19">
<h3>Request Entities<a class="headerlink" href="#id19" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Required</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ObjectLockConfiguration</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the request.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ObjectLockEnabled</span></code></p></td>
<td><p>String</p></td>
<td><p>Indicates whether this bucket has an Object Lock configuration enabled.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Rule</span></code></p></td>
<td><p>Container</p></td>
<td><p>The Object Lock rule in place for the specified bucket.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DefaultRetention</span></code></p></td>
<td><p>Container</p></td>
<td><p>The default retention period applied to new objects placed in the specified bucket.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Mode</span></code></p></td>
<td><p>String</p></td>
<td><p>The default Object Lock retention mode. Valid Values:  GOVERNANCE/COMPLIANCE</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Days</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The number of days specified for the default retention period.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Years</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The number of years specified for the default retention period.</p></td>
<td><p>No</p></td>
</tr>
</tbody>
</table>
</section>
<section id="id20">
<h3>HTTP 响应<a class="headerlink" href="#id20" title="Permalink to this heading"></a></h3>
<p>If the bucket object lock is not enabled when creating the bucket, the operation will fail.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">400</span></code></p></td>
<td><p>MalformedXML</p></td>
<td><p>The XML is not well-formed</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">409</span></code></p></td>
<td><p>InvalidBucketState</p></td>
<td><p>The bucket object lock is not enabled</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="get-bucket-object-lock">
<h2>GET BUCKET OBJECT LOCK<a class="headerlink" href="#get-bucket-object-lock" title="Permalink to this heading"></a></h2>
<p>Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration will be applied by
default to every new object placed in the specified bucket.</p>
<section id="id21">
<h3>语法<a class="headerlink" href="#id21" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>GET /{bucket}?object-lock HTTP/1.1
</pre></div>
</div>
</section>
<section id="id22">
<h3>Response Entities<a class="headerlink" href="#id22" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Required</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ObjectLockConfiguration</span></code></p></td>
<td><p>Container</p></td>
<td><p>A container for the request.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ObjectLockEnabled</span></code></p></td>
<td><p>String</p></td>
<td><p>Indicates whether this bucket has an Object Lock configuration enabled.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Rule</span></code></p></td>
<td><p>Container</p></td>
<td><p>The Object Lock rule in place for the specified bucket.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DefaultRetention</span></code></p></td>
<td><p>Container</p></td>
<td><p>The default retention period applied to new objects placed in the specified bucket.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Mode</span></code></p></td>
<td><p>String</p></td>
<td><p>The default Object Lock retention mode. Valid Values:  GOVERNANCE/COMPLIANCE</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Days</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The number of days specified for the default retention period.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Years</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The number of years specified for the default retention period.</p></td>
<td><p>No</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="create-notification">
<h2>Create Notification<a class="headerlink" href="#create-notification" title="Permalink to this heading"></a></h2>
<p>Create a publisher for a specific bucket into a topic.</p>
<section id="id23">
<h3>语法<a class="headerlink" href="#id23" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>PUT /{bucket}?notification HTTP/1.1
</pre></div>
</div>
</section>
<section id="id24">
<h3>Request Entities<a class="headerlink" href="#id24" title="Permalink to this heading"></a></h3>
<p>Parameters are XML encoded in the body of the request, in the following format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">NotificationConfiguration</span> <span class="n">xmlns</span><span class="o">=</span><span class="s2">&quot;http://s3.amazonaws.com/doc/2006-03-01/&quot;</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TopicConfiguration</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Id</span><span class="o">&gt;&lt;/</span><span class="n">Id</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Topic</span><span class="o">&gt;&lt;/</span><span class="n">Topic</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Event</span><span class="o">&gt;&lt;/</span><span class="n">Event</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Filter</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="n">S3Key</span><span class="o">&gt;</span>
                <span class="o">&lt;</span><span class="n">FilterRule</span><span class="o">&gt;</span>
                    <span class="o">&lt;</span><span class="n">Name</span><span class="o">&gt;&lt;/</span><span class="n">Name</span><span class="o">&gt;</span>
                    <span class="o">&lt;</span><span class="n">Value</span><span class="o">&gt;&lt;/</span><span class="n">Value</span><span class="o">&gt;</span>
                <span class="o">&lt;/</span><span class="n">FilterRule</span><span class="o">&gt;</span>
                 <span class="o">&lt;/</span><span class="n">S3Key</span><span class="o">&gt;</span>
             <span class="o">&lt;</span><span class="n">S3Metadata</span><span class="o">&gt;</span>
                 <span class="o">&lt;</span><span class="n">FilterRule</span><span class="o">&gt;</span>
                     <span class="o">&lt;</span><span class="n">Name</span><span class="o">&gt;&lt;/</span><span class="n">Name</span><span class="o">&gt;</span>
                     <span class="o">&lt;</span><span class="n">Value</span><span class="o">&gt;&lt;/</span><span class="n">Value</span><span class="o">&gt;</span>
                 <span class="o">&lt;/</span><span class="n">FilterRule</span><span class="o">&gt;</span>
             <span class="o">&lt;/</span><span class="n">S3Metadata</span><span class="o">&gt;</span>
             <span class="o">&lt;</span><span class="n">S3Tags</span><span class="o">&gt;</span>
                 <span class="o">&lt;</span><span class="n">FilterRule</span><span class="o">&gt;</span>
                     <span class="o">&lt;</span><span class="n">Name</span><span class="o">&gt;&lt;/</span><span class="n">Name</span><span class="o">&gt;</span>
                     <span class="o">&lt;</span><span class="n">Value</span><span class="o">&gt;&lt;/</span><span class="n">Value</span><span class="o">&gt;</span>
                 <span class="o">&lt;/</span><span class="n">FilterRule</span><span class="o">&gt;</span>
             <span class="o">&lt;/</span><span class="n">S3Tags</span><span class="o">&gt;</span>
         <span class="o">&lt;/</span><span class="n">Filter</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">TopicConfiguration</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">NotificationConfiguration</span><span class="o">&gt;</span>
</pre></div>
</div>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Required</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">NotificationConfiguration</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding list of <code class="docutils literal notranslate"><span class="pre">TopicConfiguration</span></code> entities</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">TopicConfiguration</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding <code class="docutils literal notranslate"><span class="pre">Id</span></code>, <code class="docutils literal notranslate"><span class="pre">Topic</span></code> and list of <code class="docutils literal notranslate"><span class="pre">Event</span></code> entities</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Id</span></code></p></td>
<td><p>String</p></td>
<td><p>Name of the notification</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Topic</span></code></p></td>
<td><p>String</p></td>
<td><p>Topic ARN. Topic must be created beforehand</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Event</span></code></p></td>
<td><p>String</p></td>
<td><p>List of supported events see: <a class="reference external" href="../../s3-notification-compatibility">S3 Notification Compatibility</a>.  Multiple <code class="docutils literal notranslate"><span class="pre">Event</span></code>
entities can be used. If omitted, all events are handled</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Filter</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding <code class="docutils literal notranslate"><span class="pre">S3Key</span></code>, <code class="docutils literal notranslate"><span class="pre">S3Metadata</span></code> and <code class="docutils literal notranslate"><span class="pre">S3Tags</span></code> entities</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">S3Key</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding a list of <code class="docutils literal notranslate"><span class="pre">FilterRule</span></code> entities, for filtering based on object key.
At most, 3 entities may be in the list, with <code class="docutils literal notranslate"><span class="pre">Name</span></code> be <code class="docutils literal notranslate"><span class="pre">prefix</span></code>, <code class="docutils literal notranslate"><span class="pre">suffix</span></code> or
<code class="docutils literal notranslate"><span class="pre">regex</span></code>. All filter rules in the list must match for the filter to match.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">S3Metadata</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding a list of <code class="docutils literal notranslate"><span class="pre">FilterRule</span></code> entities, for filtering based on object metadata.
All filter rules in the list must match the metadata defined on the object. However,
the object still match if it has other metadata entries not listed in the filter.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">S3Tags</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding a list of <code class="docutils literal notranslate"><span class="pre">FilterRule</span></code> entities, for filtering based on object tags.
All filter rules in the list must match the tags defined on the object. However,
the object still match it it has other tags not listed in the filter.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">S3Key.FilterRule</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding <code class="docutils literal notranslate"><span class="pre">Name</span></code> and <code class="docutils literal notranslate"><span class="pre">Value</span></code> entities. <code class="docutils literal notranslate"><span class="pre">Name</span></code> would  be: <code class="docutils literal notranslate"><span class="pre">prefix</span></code>, <code class="docutils literal notranslate"><span class="pre">suffix</span></code>
or <code class="docutils literal notranslate"><span class="pre">regex</span></code>. The <code class="docutils literal notranslate"><span class="pre">Value</span></code> would hold the key prefix, key suffix or a regular
expression for matching the key, accordingly.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">S3Metadata.FilterRule</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding <code class="docutils literal notranslate"><span class="pre">Name</span></code> and <code class="docutils literal notranslate"><span class="pre">Value</span></code> entities. <code class="docutils literal notranslate"><span class="pre">Name</span></code> would be the name of the metadata
attribute (e.g. <code class="docutils literal notranslate"><span class="pre">x-amz-meta-xxx</span></code>). The <code class="docutils literal notranslate"><span class="pre">Value</span></code> would be the expected value for
this attribute.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">S3Tags.FilterRule</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding <code class="docutils literal notranslate"><span class="pre">Name</span></code> and <code class="docutils literal notranslate"><span class="pre">Value</span></code> entities. <code class="docutils literal notranslate"><span class="pre">Name</span></code> would be the tag key,
and <code class="docutils literal notranslate"><span class="pre">Value</span></code> would be the tag value.</p></td>
<td><p>Yes</p></td>
</tr>
</tbody>
</table>
</section>
<section id="id25">
<h3>HTTP 响应<a class="headerlink" href="#id25" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">400</span></code></p></td>
<td><p>MalformedXML</p></td>
<td><p>The XML is not well-formed</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">400</span></code></p></td>
<td><p>InvalidArgument</p></td>
<td><p>Missing Id; Missing/Invalid Topic ARN; Invalid Event</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchBucket</p></td>
<td><p>The bucket does not exist</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchKey</p></td>
<td><p>The topic does not exist</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="delete-notification">
<h2>Delete Notification<a class="headerlink" href="#delete-notification" title="Permalink to this heading"></a></h2>
<p>Delete a specific, or all, notifications from a bucket.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<ul class="simple">
<li><p>Notification deletion is an extension to the S3 notification API</p></li>
<li><p>When the bucket is deleted, any notification defined on it is also deleted</p></li>
<li><p>Deleting an unknown notification (e.g. double delete) is not considered an error</p></li>
</ul>
</div>
<section id="id26">
<h3>语法<a class="headerlink" href="#id26" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>DELETE /{bucket}?notification[=&lt;notification-id&gt;] HTTP/1.1
</pre></div>
</div>
</section>
<section id="id27">
<h3>Parameters<a class="headerlink" href="#id27" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">notification-id</span></code></p></td>
<td><p>String</p></td>
<td><p>Name of the notification. If not provided, all notifications on the bucket are deleted</p></td>
</tr>
</tbody>
</table>
</section>
<section id="id28">
<h3>HTTP 响应<a class="headerlink" href="#id28" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchBucket</p></td>
<td><p>The bucket does not exist</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="get-list-notification">
<h2>Get/List Notification<a class="headerlink" href="#get-list-notification" title="Permalink to this heading"></a></h2>
<p>Get a specific notification, or list all notifications configured on a bucket.</p>
<section id="id29">
<h3>语法<a class="headerlink" href="#id29" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>GET /{bucket}?notification[=&lt;notification-id&gt;] HTTP/1.1
</pre></div>
</div>
</section>
<section id="id30">
<h3>Parameters<a class="headerlink" href="#id30" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">notification-id</span></code></p></td>
<td><p>String</p></td>
<td><p>Name of the notification. If not provided, all notifications on the bucket are listed</p></td>
</tr>
</tbody>
</table>
</section>
<section id="id31">
<h3>Response Entities<a class="headerlink" href="#id31" title="Permalink to this heading"></a></h3>
<p>Response is XML encoded in the body of the request, in the following format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">NotificationConfiguration</span> <span class="n">xmlns</span><span class="o">=</span><span class="s2">&quot;http://s3.amazonaws.com/doc/2006-03-01/&quot;</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TopicConfiguration</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Id</span><span class="o">&gt;&lt;/</span><span class="n">Id</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Topic</span><span class="o">&gt;&lt;/</span><span class="n">Topic</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Event</span><span class="o">&gt;&lt;/</span><span class="n">Event</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Filter</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="n">S3Key</span><span class="o">&gt;</span>
                <span class="o">&lt;</span><span class="n">FilterRule</span><span class="o">&gt;</span>
                    <span class="o">&lt;</span><span class="n">Name</span><span class="o">&gt;&lt;/</span><span class="n">Name</span><span class="o">&gt;</span>
                    <span class="o">&lt;</span><span class="n">Value</span><span class="o">&gt;&lt;/</span><span class="n">Value</span><span class="o">&gt;</span>
                <span class="o">&lt;/</span><span class="n">FilterRule</span><span class="o">&gt;</span>
                 <span class="o">&lt;/</span><span class="n">S3Key</span><span class="o">&gt;</span>
             <span class="o">&lt;</span><span class="n">S3Metadata</span><span class="o">&gt;</span>
                 <span class="o">&lt;</span><span class="n">FilterRule</span><span class="o">&gt;</span>
                     <span class="o">&lt;</span><span class="n">Name</span><span class="o">&gt;&lt;/</span><span class="n">Name</span><span class="o">&gt;</span>
                     <span class="o">&lt;</span><span class="n">Value</span><span class="o">&gt;&lt;/</span><span class="n">Value</span><span class="o">&gt;</span>
                 <span class="o">&lt;/</span><span class="n">FilterRule</span><span class="o">&gt;</span>
             <span class="o">&lt;/</span><span class="n">S3Metadata</span><span class="o">&gt;</span>
             <span class="o">&lt;</span><span class="n">S3Tags</span><span class="o">&gt;</span>
                 <span class="o">&lt;</span><span class="n">FilterRule</span><span class="o">&gt;</span>
                     <span class="o">&lt;</span><span class="n">Name</span><span class="o">&gt;&lt;/</span><span class="n">Name</span><span class="o">&gt;</span>
                     <span class="o">&lt;</span><span class="n">Value</span><span class="o">&gt;&lt;/</span><span class="n">Value</span><span class="o">&gt;</span>
                 <span class="o">&lt;/</span><span class="n">FilterRule</span><span class="o">&gt;</span>
             <span class="o">&lt;/</span><span class="n">S3Tags</span><span class="o">&gt;</span>
         <span class="o">&lt;/</span><span class="n">Filter</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">TopicConfiguration</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">NotificationConfiguration</span><span class="o">&gt;</span>
</pre></div>
</div>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Required</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">NotificationConfiguration</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding list of <code class="docutils literal notranslate"><span class="pre">TopicConfiguration</span></code> entities</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">TopicConfiguration</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding <code class="docutils literal notranslate"><span class="pre">Id</span></code>, <code class="docutils literal notranslate"><span class="pre">Topic</span></code> and list of <code class="docutils literal notranslate"><span class="pre">Event</span></code> entities</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Id</span></code></p></td>
<td><p>String</p></td>
<td><p>Name of the notification</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Topic</span></code></p></td>
<td><p>String</p></td>
<td><p>Topic ARN</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Event</span></code></p></td>
<td><p>String</p></td>
<td><p>Handled event. Multiple <code class="docutils literal notranslate"><span class="pre">Event</span></code> entities may exist</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Filter</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding the filters configured for this notification</p></td>
<td><p>No</p></td>
</tr>
</tbody>
</table>
</section>
<section id="id32">
<h3>HTTP 响应<a class="headerlink" href="#id32" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchBucket</p></td>
<td><p>The bucket does not exist</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchKey</p></td>
<td><p>The notification does not exist (if provided)</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="bucket">
<h2>启用 bucket 日志记录<a class="headerlink" href="#bucket" title="Permalink to this heading"></a></h2>
<p>启用一个 bucket 的日志记录功能。</p>
<section id="id33">
<h3>语法<a class="headerlink" href="#id33" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>PUT /{bucket}?logging HTTP/1.1
</pre></div>
</div>
</section>
<section id="id34">
<h3>Request Entities<a class="headerlink" href="#id34" title="Permalink to this heading"></a></h3>
<p>Parameters are XML encoded in the body of the request, in the following format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">BucketLoggingStatus</span> <span class="n">xmlns</span><span class="o">=</span><span class="s2">&quot;http://s3.amazonaws.com/doc/2006-03-01/&quot;</span><span class="o">&gt;</span>
  <span class="o">&lt;</span><span class="n">LoggingEnabled</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TargetBucket</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">TargetBucket</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TargetGrants</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">Grant</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Grantee</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">DisplayName</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">DisplayName</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">EmailAddress</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">EmailAddress</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">ID</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">ID</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">xsi</span><span class="p">:</span><span class="nb">type</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">xsi</span><span class="p">:</span><span class="nb">type</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">URI</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">URI</span><span class="o">&gt;</span>
        <span class="o">&lt;/</span><span class="n">Grantee</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Permission</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">Permission</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">Grant</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">TargetGrants</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TargetObjectKeyFormat</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">PartitionedPrefix</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">PartitionDateSource</span><span class="o">&gt;</span><span class="n">DeliveryTime</span><span class="o">|</span><span class="n">EventTime</span><span class="o">&lt;/</span><span class="n">PartitionDateSource</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">PartitionedPrefix</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">SimplePrefix</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">SimplePrefix</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">TargetObjectKeyFormat</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TargetPrefix</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">TargetPrefix</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">LoggingType</span><span class="o">&gt;</span><span class="n">Standard</span><span class="o">|</span><span class="n">Journal</span><span class="o">&lt;/</span><span class="n">LoggingType</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">ObjectRollTime</span><span class="o">&gt;</span><span class="n">integer</span><span class="o">&lt;/</span><span class="n">ObjectRollTime</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">Filter</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">S3Key</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">FilterRule</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">Name</span><span class="o">&gt;</span><span class="n">suffix</span><span class="o">/</span><span class="n">prefix</span><span class="o">/</span><span class="n">regex</span><span class="o">&lt;/</span><span class="n">Name</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">Value</span><span class="o">&gt;&lt;/</span><span class="n">Value</span><span class="o">&gt;</span>
        <span class="o">&lt;/</span><span class="n">FilterRule</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">S3Key</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">Filter</span><span class="o">&gt;</span>
  <span class="o">&lt;/</span><span class="n">LoggingEnabled</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">BucketLoggingStatus</span><span class="o">&gt;</span>
</pre></div>
</div>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Required</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">BucketLoggingStatus</span></code></p></td>
<td><p>Container</p></td>
<td><p>Enabling/Disabling logging configuration for the bucket.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">LoggingEnabled</span></code></p></td>
<td><p>Container</p></td>
<td><p>Holding the logging configuration for the bucket.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">TargetBucket</span></code></p></td>
<td><p>String</p></td>
<td><p>The bucket where the logs are stored. The log bucket cannot have bucket logging
enabled.</p></td>
<td><p>Yes</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">TargetGrants</span></code></p></td>
<td><p>Container</p></td>
<td><p>Not supported. The owner of the log bucket is the owner of the log objects.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">TargetObjectKeyFormat</span></code></p></td>
<td><p>Container</p></td>
<td><p>The format of the log object key. Contains either <code class="docutils literal notranslate"><span class="pre">PartitionedPrefix</span></code> or
<code class="docutils literal notranslate"><span class="pre">SimplePrefix</span></code> entities.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PartitionedPrefix</span></code></p></td>
<td><p>Container</p></td>
<td><p>Indicates a partitioned  log object key format. Note that <code class="docutils literal notranslate"><span class="pre">PartitionDateSource</span></code>
is ignored and hardcoded as <code class="docutils literal notranslate"><span class="pre">DeliveryTime</span></code></p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">SimplePrefix</span></code></p></td>
<td><p>Container</p></td>
<td><p>Indicates a simple log object key format (default format)</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">TargetPrefix</span></code></p></td>
<td><p>String</p></td>
<td><p>The prefix for the log objects. Used in both formats. May be used to distinguish
between different source buckets writing log records to the same log bucket.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">LoggingType</span></code></p></td>
<td><p>String</p></td>
<td><p>The type of logging. Valid values are:
<code class="docutils literal notranslate"><span class="pre">Standard</span></code> (default) all bucket operations are logged after being perfomed.
The log record will contain all fields.
<code class="docutils literal notranslate"><span class="pre">Journal</span></code> only PUT, COPY, MULTI/DELETE and MPU operations are logged.
Will record the minimum subset of fields in the log record that is needed
for journaling.</p></td>
<td><p>No</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ObjectRollTime</span></code></p></td>
<td><p>Integer</p></td>
<td><p>The time in seconds after which a new log object is created, and the previous log
object added to the log bucket. Default is 3600 seconds (1 hour).</p></td>
<td><p>No</p></td>
</tr>
</tbody>
</table>
</section>
<section id="id35">
<h3>HTTP 响应<a class="headerlink" href="#id35" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">400</span></code></p></td>
<td><p>MalformedXML</p></td>
<td><p>The XML is not well-formed</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">400</span></code></p></td>
<td><p>InvalidArgument</p></td>
<td><p>Missing mandatory value or invalid value</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchBucket</p></td>
<td><p>The bucket does not exist</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="disable-bucket-logging">
<h2>Disable Bucket Logging<a class="headerlink" href="#disable-bucket-logging" title="Permalink to this heading"></a></h2>
<p>Disable bucket logging from a bucket.</p>
<section id="id36">
<h3>语法<a class="headerlink" href="#id36" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>PUT /{bucket}?logging HTTP/1.1
</pre></div>
</div>
</section>
<section id="id37">
<h3>Request Entities<a class="headerlink" href="#id37" title="Permalink to this heading"></a></h3>
<p>Parameters are XML encoded in the body of the request, in the following format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">BucketLoggingStatus</span> <span class="n">xmlns</span><span class="o">=</span><span class="s2">&quot;http://s3.amazonaws.com/doc/2006-03-01/&quot;</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">BucketLoggingStatus</span><span class="o">&gt;</span>
</pre></div>
</div>
</section>
<section id="id38">
<h3>HTTP 响应<a class="headerlink" href="#id38" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchBucket</p></td>
<td><p>The bucket does not exist</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="get-bucket-logging">
<h2>Get Bucket Logging<a class="headerlink" href="#get-bucket-logging" title="Permalink to this heading"></a></h2>
<p>Get logging configured on a bucket.</p>
<section id="id39">
<h3>语法<a class="headerlink" href="#id39" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>GET /{bucket}?logging HTTP/1.1
</pre></div>
</div>
</section>
<section id="id40">
<h3>Response Entities<a class="headerlink" href="#id40" title="Permalink to this heading"></a></h3>
<p>Response is XML encoded in the body of the request, in the following format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">BucketLoggingStatus</span> <span class="n">xmlns</span><span class="o">=</span><span class="s2">&quot;http://s3.amazonaws.com/doc/2006-03-01/&quot;</span><span class="o">&gt;</span>
  <span class="o">&lt;</span><span class="n">LoggingEnabled</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TargetBucket</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">TargetBucket</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TargetGrants</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">Grant</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Grantee</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">DisplayName</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">DisplayName</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">EmailAddress</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">EmailAddress</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">ID</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">ID</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">xsi</span><span class="p">:</span><span class="nb">type</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">xsi</span><span class="p">:</span><span class="nb">type</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">URI</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">URI</span><span class="o">&gt;</span>
        <span class="o">&lt;/</span><span class="n">Grantee</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">Permission</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">Permission</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">Grant</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">TargetGrants</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TargetObjectKeyFormat</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">PartitionedPrefix</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">PartitionDateSource</span><span class="o">&gt;</span><span class="n">DeliveryTime</span><span class="o">|</span><span class="n">EventTime</span><span class="o">&lt;/</span><span class="n">PartitionDateSource</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">PartitionedPrefix</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">SimplePrefix</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">SimplePrefix</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">TargetObjectKeyFormat</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">TargetPrefix</span><span class="o">&gt;</span><span class="n">string</span><span class="o">&lt;/</span><span class="n">TargetPrefix</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">LoggingType</span><span class="o">&gt;</span><span class="n">Standard</span><span class="o">|</span><span class="n">Journal</span><span class="o">&lt;/</span><span class="n">LoggingType</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">ObjectRollTime</span><span class="o">&gt;</span><span class="n">integer</span><span class="o">&lt;/</span><span class="n">ObjectRollTime</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">Filter</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">S3Key</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">FilterRule</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">Name</span><span class="o">&gt;</span><span class="n">suffix</span><span class="o">/</span><span class="n">prefix</span><span class="o">/</span><span class="n">regex</span><span class="o">&lt;/</span><span class="n">Name</span><span class="o">&gt;</span>
          <span class="o">&lt;</span><span class="n">Value</span><span class="o">&gt;&lt;/</span><span class="n">Value</span><span class="o">&gt;</span>
        <span class="o">&lt;/</span><span class="n">FilterRule</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">S3Key</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">Filter</span><span class="o">&gt;</span>
  <span class="o">&lt;/</span><span class="n">LoggingEnabled</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">BucketLoggingStatus</span><span class="o">&gt;</span>
</pre></div>
</div>
</section>
<section id="id41">
<h3>HTTP 响应<a class="headerlink" href="#id41" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchBucket</p></td>
<td><p>The bucket does not exist</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="flush-bucket-logging">
<h2>Flush Bucket Logging<a class="headerlink" href="#flush-bucket-logging" title="Permalink to this heading"></a></h2>
<p>Flushes all logging objects for a given source bucket (logging bucket are written lazily).</p>
<section id="id42">
<h3>语法<a class="headerlink" href="#id42" title="Permalink to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>POST /{bucket}?logging HTTP/1.1
</pre></div>
</div>
</section>
<section id="id43">
<h3>HTTP 响应<a class="headerlink" href="#id43" title="Permalink to this heading"></a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>HTTP Status</p></th>
<th class="head"><p>Status Code</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">201</span></code></p></td>
<td><p>Created</p></td>
<td><p>Flushed all logging objects successfully</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">404</span></code></p></td>
<td><p>NoSuchBucket</p></td>
<td><p>The bucket does not exist</p></td>
</tr>
</tbody>
</table>
</section>
</section>
</section>



<div id="support-the-ceph-foundation" class="admonition note">
  <p class="first admonition-title">Brought to you by the Ceph Foundation</p>
  <p class="last">The Ceph Documentation is a community resource funded and hosted by the non-profit <a href="https://ceph.io/en/foundation/">Ceph Foundation</a>. If you would like to support this and our other efforts, please consider <a href="https://ceph.io/en/foundation/join/">joining now</a>.</p>
</div>


           </div>
           
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="../serviceops/" class="btn btn-neutral float-left" title="服务支持的操作" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="../objectops/" class="btn btn-neutral float-right" title="对象操作" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2016, Ceph authors and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0).</p>
  </div>

   

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>